package com.tangsm.spring.boot.strategy.pay.context;

import com.tangsm.spring.boot.strategy.pay.enums.PayStrategyEnum;
import com.tangsm.spring.boot.strategy.pay.service.PayService;
import org.springframework.stereotype.Component;

import java.math.BigDecimal;

/**
 * 支付上下文统一入口
 *
 * @author tangsm
 */
@Component
public class PayContext {

    /**
     * 支付
     *
     * @param type   支付类型
     * @param amount 金额
     * @return 响应结果
     */
    public String pay(String type, BigDecimal amount) {
        PayService payService = PayStrategyEnum.getPayService(type);
        if (payService == null) {
            return "支付失败，支付类型错误";
        }

        return payService.pay(amount);
    }
}
